//
//  NSString+Helper.h
//  Consultant
//
//  Created by 朱耀春 on 17/6/19.
//  Copyright © 2017年 朱耀春. All rights reserved.
//

#import <Foundation/Foundation.h>

@interface NSString (Helper)

#pragma mark 哈希计算
//哈希计算
+ (NSString *)Hash:(NSString *)inputString;

#pragma mark 字符串改变颜色和字体大小
/**
 字符串改变颜色和字体大小
 
 @param string 文字
 @param range 需要修改的范围
 @param color 颜色
 @param otherColor 另一种颜色
 @param size 字体大小
 @param otherSize 另一种字体大小
 @return 返回
 */
+(NSMutableAttributedString *)changeColorAndFontSizeWithString:(NSString *)string
                                                         range:(NSRange)range
                                                         color:(UIColor*)color
                                                    otherColor:(UIColor *)otherColor
                                                          size:(NSInteger )size
                                                     otherSize:(NSInteger )otherSize;
#pragma mark 补足两位数
/**
 补足两位数
 @param intger 要转换的数
 @return 返回
 */
+(NSString * )makeUpTwoDigitsWithIntger:(NSInteger )intger;

#pragma mark 数组转换成json数据
/**
 数组转换成json数据

 @param array 数组
 @return 返回
 */
+(NSString *)theArrayIntoAJsonDataWithArray:(NSArray *)array;
#pragma mark 时间戳转成字符串

/**
 时间戳转成字符串

 @param time 时间戳
 @return 时间字符串
 */
+(NSString *)getStringWithtime:(NSInteger)time;

#pragma mark 时间转换成时间戳

/**
 时间转换成时间戳

 @param time 时间字符串
 @return 时间戳
 */
+(NSInteger )getIntegerwithTime:(NSString *)time;
#pragma mark 计算时差
/**
 计算时差
 
 @param startTime 开始
 @param endTime 结束
 @return 返回
 */
+(NSString *)calculatingTheTimeDifferenceWithStartTime:(NSString *)startTime
                                               endTime:(NSString *)endTime;
#pragma mark 获取当前时间

/**
 获取当前时间

 @param simplify 是否去掉时分秒
 */
+(NSString*)getCurrentTimesSimplify:(BOOL)simplify;
#pragma mark 获取前某个月对应的今天时间

/**
 获取前某个月对应的今天时间

 @param month 要获取那个月的
 @param simplify 是否去掉时分秒
 */
+(NSString *)GetTheFirstFewMonthsWithMonth:(NSInteger )month
                                  Simplify:(BOOL)simplify;
#pragma mark 获取字符串高度
/**
 获取字符串高度
 
 @param string 字符串
 @param size 控件宽度  CGSizeMake(kMainScreenWidth - myWidth, MAXFLOAT)
 @param fontSize 字体大小
 
 */
+(CGSize )getsTheStringHeightWithString:(NSString *)string
                                   size:(CGSize )size
                                   font:(float )fontSize;
#pragma mark json 转对应的字典或数组
+(id)getJSONObjectWithDataWith:(NSString *)userInfo;
#pragma mark 某一部分字体加粗
/**
 某一部分字体加粗
 
 @param str 字符串
 @param fontName 字体名称
 @param fontRange 加粗范围
 @param size 加粗字体大小
 @param LineSpacing 行间距
 @return NSMutableAttributedString
 */
+ (NSMutableAttributedString *)boldFontWithStr:(NSString *)str fontName:(NSString *)fontName
                                     fontRange:(NSRange )fontRange
                                          size:(float )size
                                   LineSpacing:(float)LineSpacing;
#pragma mark 打电话
/**
 打电话
 
 @param phone 手机号
 @param vc 当前控制器
 */
+ (void)callWithPhone:(NSString *)phone
                   VC:(UIViewController *)vc;
/**
 取出所有数字
 
 @param str str
 @return 数字
 */
+ (NSString *)takeOutAllTheNumbersWithString:(NSString *)str;
/**
 取出所有数字
 
 @param str str
 @return 数字(int)
 */
+ (int )takeTheNumbersWithString:(NSString *)str;

/**
 字典转data
 
 @param dict dictionary
 */
+ (NSData *)dictionaryConversionDataWithDict:(NSDictionary *)dict;

/**
 data 转 NSDictionary
 @param data data
 */
+ (NSDictionary *)dataConversionNSDictionaryWithData:(NSData *)data;
//描述加表情 加行间距

+ (NSMutableAttributedString *)addPicturesWithString:(NSString *)str
                                               image:(UIImage *)img
                                              CGRect:(CGRect)bounds
                                               Index:(NSInteger )Index
                                         LineSpacing:(NSInteger )LineSpacing;


/**
 改变字符串中所有数字的颜色

 @param label 显示label
 @param color 颜色
 @param font 字体
 @param alignment NSTextAlignment
 @param LineSpacing 行间距
 */
+ (void)setRichNumberWithLabel:(UILabel*)label
                         Color:(UIColor *)color
                      FontSize:(UIFont *)font
                     alignment:(NSTextAlignment )alignment
                   LineSpacing:(NSInteger)LineSpacing;
#pragma mark 改变字体颜色和大小
/**
 改变字体颜色和大小
 
 @param des 内容
 @param parameter
 { color 颜色
  Font  字体
  size  大小
  rang  匹配字符  }
 @param LineSpacing 行间距
 @return return value
 */
+(NSMutableAttributedString *)SetFontColorWith:(NSString *)des
                                   LineSpacing:(NSInteger )LineSpacing
                                     parameter:(NSArray *)parameter;


/**
 格式化时间

 @param date yyyy-mm-dd
 @param type dd MMM yy
 */
+(NSString *)FormattingTimeWith:(NSString *)date
                           type:(NSInteger )type;

/**
 调整行间距

 @param des des
 @param lineSpacing 间距
 @param textAlignment textAlignment
 @return return value
 */
+(NSMutableAttributedString *)updateLineSpacing:(NSString *)des
                                    lineSpacing:(NSInteger )lineSpacing :(NSTextAlignment)textAlignment;

/**
 计算UILabel的高度(带有行间距的情况)

 @param str str
 @param font font
 @param width width
 @param lineSpacing lineSpacing
 @return return value description
 */
+(CGFloat)getSpaceLabelHeight:(NSString*)str
                         Font:(UIFont*)font
                        Width:(CGFloat)width
                  lineSpacing:(NSInteger )lineSpacing;

/**
 是否包含空格@" "

 @param string string
 @return YES / NO
 */
+(BOOL)isHaveEmptyString:(NSString *)string;

/**
 是否全部是空格

 @param string string
 @return YES / NO
 */
+(BOOL)isEmptyString:(NSString *)string;

/**
 去掉空格

 @param string string
 @return 去掉空格后string
 */
+(NSString *)removeSpaces:(NSString *)string;

/**
 金额千分位显示，保留小数点
 */
+(NSString *)positiveFormat:(NSString *)text;

/**
 字典转Json字符串
 
 @param infoDict 字典
 @return return value
 */
+ (NSString*)convertToJSONData:(id)infoDict;

/**
 json 转字典或数组
 
 @param JSONObject JSONObject
 @return return value
 */
+(id)getDataWithJSONObject:(NSString *)JSONObject;

/**
 jsonString 转 NSDictionary
 
 @param jsonString jsonString
 @return return NSDictionary
 */
+ (NSDictionary *)dictionaryWithJsonString:(NSString *)jsonString;

/**
 获取所有语言
 
 @return 当前语言
 */
+ (NSString*)getPreferredLanguage;

/**
 获取字节长度
 
 @param text text
 @return integer
 */
+(NSUInteger)textLength: (NSString *) text;

/**
 普通字符串转换为十六进制的
 
 @param string string
 @return hexString
 */
+ (NSString *)hexStringFromString:(NSString *)string;
/**
 十六进制转换为普通字符串
 
 @param hexString hexString
 @return sting
 */
+ (NSString *)stringFromHexString:(NSString *)hexString;

/**
 千分位

 @param money money
 @return return value
 */
+ (NSString *)moneyFormat:(NSString *)money;



@end
